Read Buf

Read Buf

每个开发者必须知道的 12 个 Git 命令

最新一期的《GitHub 初学者指南》,我们将介绍让你快速掌握 12 个 Git 的必备命令。

pic

1. Git config

在你的计算机上安装 Git 后,首先应该配置 Git,使其了解你是谁。git config 命令允许你设置 Git 配置值,帮助你创建个性化的 Git 工作流程。要设置你的邮箱和用户名,可以键入 git config --global user.name "username"git config --global user.email "[email protected]",这两个设置允许 Git 将你的工作与用户名和邮箱关联起来,以便你为自己的工作获得应有的信用。

终端截图,显示已键入的 git config 命令。

pic

2. Git init

就像我们之前提到的,git init 命令用于初始化一个新的 Git 仓库。可以把它看作是打开 Git 开关。

例如,你可以通过终端命令 mkdir project1 创建一个新文件夹。你可以通过运行 cd project1 进入 project1 文件夹。当前,project1 还不是一个 Git 仓库。

如果你想让这个文件夹成为一个 Git 仓库,以便你可以跟踪所有的更改,可以键入 git init 命令。

pic

当你在普通文件夹中运行 git init 命令时,它会将该文件夹转换为一个可跟踪的 Git 仓库,在这里你可以使用 Git 命令。

3. Git status

如果你想查看到目前为止在新的 Git 仓库中做了什么,可以键入 git status,它允许你查看工作目录中哪些文件已添加、删除或修改。在这种情况下,由于你还没有添加任何文件,因此应该返回“nothing to commit”。

让我们通过运行 touch hello.md 创建一个新文件,然后再次运行 git status。现在你应该会看到一个未跟踪的文件“hello.md”。

pic

未跟踪的文件是指尚未添加到暂存区的文件。要将文件添加到暂存区,可以使用 git add 命令。

4. Git add

使用这个命令有很多种方式。例如,你可以使用 git add . 将工作目录中的所有文件添加到暂存区,或者使用 git add filename 将特定文件添加到暂存区。

让我们创建一个新的文件叫 learning.py 和另一个文件叫 waiting.py。现在,让我们运行 git status 以查看你的更改,然后运行 git add learning.py 将此文件添加到暂存区。如果你再次运行 git status,这将显示 learning.py 在暂存区中,而 waiting.py 在工作目录中未被跟踪。

pic

当文件被添加到暂存区时,这意味着它们在提交之前处于安全状态。把使用 Git add 命令看作是告诉 Git,“请跟踪这个文件的当前状态。”

如果你对已跟踪的文件进行了额外的更改,你需要再次使用 git add 命令,让 Git 跟踪这些更改。向 learning.py 文件添加一些代码,以便你能理解我们的意思。

目前,learning.py 和 hello.md 文件在暂存区中被跟踪,而 waiting.py 文件未被跟踪。如果你在 learning.py 中添加代码 print (“I’m learning git”),然后在终端中运行 git status,你会看到 learning.py 文件已被修改且有未跟踪的更改。要跟踪这些新的更改,请运行 git add learning.py

pic

在现实世界中,你通常会完成 learning.py 文件中的工作,然后将这些更改添加到暂存区。一旦你对自己的工作感到满意,就可以提交你的更改。

5. Git commit

“提交”一个更改就是将你的项目版本存储在 Git 历史记录中。

目前,learning.py 和 hello.md 被跟踪,而 waiting.py 未被跟踪。让我们运行 git commit -m "initial commit" 看看会发生什么。

如果你运行 git status,你会看到“2 files changed, 1 insertion in git”,因为你刚刚添加了两个新文件,其中一个文件有一行代码。你还会看到一个未跟踪的文件—waiting.py—因为该文件从未添加到暂存区。

如果你对 learning.py 文件进行了新的更改,可以通过运行 git addgit commit -m "add waiting file and new function" 命令将两个文件以及其他更改添加到暂存区并提交。

pic

这就是你如何一起使用 git addgit commit 命令!做得好,跟踪更改并存储你的新工作。

6. Git clone

如果你被提供了一个需要在你的笔记本电脑上获取的远程位置的文件夹链接,你会怎么做?你需要将远程仓库复制到你的本地机器。在 Git 的世界里,这被称为“克隆”。克隆的命令是,没错,就是 git clone

当你与使用 Git 进行协作的团队一起工作时,可能会要求你使用 Git 复制一个项目文件夹以进行更改。

比如说,你在 GitHub 上有一个远程仓库。要将这个仓库复制或克隆到你的计算机上,点击绿色的“Code”按钮,然后选择 HTTPS 选项。点击复制图标以复制仓库链接,然后打开你的终端并键入 git clone <url link>,在终端中粘贴 URL 链接,然后按回车键。

pic

一旦你看到“done”,你就成功地将一个仓库克隆到了你的机器上。现在,你有了那个远程仓库的本地副本,可以在其中工作和编辑。

7. Git checkout

当你与团队一起使用 Git 仓库时,重要的是将你的更改添加到一个新分支上——Git 仓库中的分支就像创建文档的副本,以免弄乱原件。分支允许你在同一个项目中与队友更协作和高效地工作。

所以,让我们在你刚刚克隆的仓库中创建一个新分支。

pic

键入 git checkout -b update-name 来创建一个名为 update-name 的新分支,你可以在其上进行更改。这个命令将允许你同时创建一个新分支并切换到该分支。

8. Git branch

要查看你拥有的分支列表,可以键入 git branch,它会显示你有三个分支——主分支、一个名为 init 的分支和新创建的 update-name 分支。按下键盘上的 q 键退出。

9. Git switch

现在,如果你想回到主分支呢?你可以使用 git switch 命令。在终端中,键入 git switch main 以返回主分支。太好了,现在你回到了主分支。

让我们返回你创建的分支并对文件进行一些更改。

pic

键入 git switch update-name,然后在你的代码编辑器中打开项目。导航到 index.html 文件,右键点击文件,选择打开预览。这将在侧边浏览器中打开一个窗口,你可以实时查看代码中的更改。

假设你被要求将这个应用程序的标题更改为“Git Going”。让我们在 HTML 文件中更新名称并运行 git status 查看文件已被修改。

练习你之前学到的知识,将这些更改添加到暂存区,然后将更改提交到你的本地仓库 git add . git commit -m "update app name" git status。现在,将你的本地更改推送到你之前克隆的远程仓库以更新应用程序。

10. Git push

要将你刚刚进行的更改推送到远程仓库,你需要将更改推送到远程仓库。

git push 命令告诉 Git,“谢谢你跟踪这些文件更改。现在我想将这些更改上传到主项目文件中。”

当你推送更改时,你实际上是在使用本地仓库中已提交的更改更新远程仓库。要做到这一点,请使用 git push <remote> <branch> 命令,其中“remote”指的是远程仓库,“branch”指的是你正在处理的分支。

在你的情况下,你可以键入 git push origin update-name,其中“origin”指的是“远程仓库”,“update-name”指的是你想要上传的分支。

如果你回到 GitHub 上的仓库,你会看到有一个新的分支可用。它已被“推送”到仓库中,这就是我们称之为 Git push 的原因!

pic

现在你可以在 GitHub 上打开一个拉取请求,将你的更改合并到主分支中。拉取请求是一种将一组更改从一个分支合并到另一个分支的提议。在你的情况下,你想将更新的名称合并到主分支中。

11. Git pull

git pull 是一个重要的命令,用于保持你的本地仓库与远程仓库同步。

现在你已经通过更改更新了远程仓库中的主分支,回到你的本地仓库。

在终端中,键入 git switch main,然后在编辑器中打开文件。导航到 index.html 文件并检查应用程序的名称。你会看到文件中的应用程序名称仍然是“Todo”,尽管你刚刚更新了主分支的新名称。那么,发生了什么?如果你猜到你更新了远程仓库的主分支而不是你的本地副本,那么你是对的。

记住,本地仓库是远程仓库的一个副本/克隆,每个分支都有自己的历史记录。由于你在本地分支 update-name 上做了更改并推送到远程仓库,你需要在本地做同样的事情并将更改合并到本地主分支中。

你可以使用 git pull 命令将你的本地分支与其远程对应分支同步。这个命令会获取所有的更改并将它们合并到你的本地分支。

pic

在主分支上,在终端中运行 git pull。这将更新你的分支并返回所做的更改。然后你会看到有一个文件被更改,其中一个插入和一个删除。

12. Git show

所以,你做了很多更改。如何跟踪你到目前为止所做的一切?

这就是 git show 命令的用武之地。git show 允许你查看你所在分支上的更改。这是查看项目历史的一个好方法。

在终端中,在主分支上运行 git show。这里有很多信息:

  • 提交 ID(称为 sha)

  • 提交消息的作者、时间和日期

  • 提交消息本身

  • 文件中所做的实际内容更改

终端截图,显示 git show 命令返回的所有内容。

pic

GitHub 工作流

你现在已经完全具备了像专业人士一样使用 Git 的能力。练习这些命令将使你成为更有效的 Git 用户。这引导我们进入所谓的 GitHub 工作流。

GitHub 工作流是一种基于分支的工作流,适用于每个人。这意味着每当你在一个仓库中工作时,你都在经历 GitHub 工作流,所以恭喜你,你刚刚完成了它!

你克隆了仓库,创建了一个新分支,在该分支上进行了更改,推送到 GitHub,并打开了一个拉取请求。通常在这个阶段,你会请求队友对你所做的工作提供反馈,然后解决评论。然后你将拉取请求合并到主分支并删除你的分支。

让我们完成 GitHub 工作流的最后阶段并删除你的分支。删除分支的命令是 git branch -d update-name,这将删除本地分支。要远程删除分支,可以运行下一个命令 git push --delete origin update-name,这将删除远程仓库中的分支。

pic

这就是 GitHub 工作流。